MVC模式的架構元件被設計用來處理開發中的應用程式的不同方面。MVC設計模式的作用是將表現層與業務邏輯分開。
為什麼開發人員關心MVC?MVC在應用和網路開發中很受歡迎,它是應用和網路開發中最廣泛使用的軟體設計模式之一。模型-檢視-控制器設計模式將關注點分成3個桶。
模型視圖控制器架構模式將關注點分為 3 個桶之一:
模型存儲和管理數據。
通常是數據庫,在我們的快速示例中,我們將使用瀏覽器上的本地 Web 存儲來說明這個概念。
視圖圖形用戶界面
視圖是數據的可視化表示,如圖表、圖表、表格、表格。
視圖包含直接與用戶交互的所有功能——比如單擊按鈕或輸入事件。
控制器應用程序的大腦。
控制器連接模型和視圖。控制器將來自視圖的輸入轉換為需求以檢索/更新模型中的數據。
控制器從視圖接收輸入,使用邏輯將輸入轉換為模型的需求,模型抓取數據,控制器將數據從模型傳遞回視圖,以便用戶在一個漂亮的顯示中看到。
如上所述,MVC 軟件框架幫助我們分離應用程序的不同方面(輸入邏輯、業務邏輯和 GUI),同時提供這些元素之間的鬆散耦合。因此,信息(最可重用)邏輯屬於模型,GUI 屬於視圖。輸入邏輯屬於控制器。這種分離有助於您在構建應用程序時管理複雜性,因為它使您能夠一次專注於實現的一個方面。MVC 框架是一個好主意,原因有很多,包括:
您可以對 MVC 序列圖中的生命線使用構造型,以直觀地清楚您在 MVC 中使用的對像類型。一個MVC序列圖有接口對象、控制器對象和實體對象:
這是 MVC 的簡單和假設的序列圖。您在此圖中看到的是,Web 用戶發起了一個查詢並生成了一個事件,該事件由控制器處理並從模型中獲取所需的信息,驗證信息並將結果集傳遞回視圖。
假設有一個應用程序可以讓您搜索人員。UI 必須有一個文本字段,用戶可以在其中輸入搜索字符串,並且它可能有一個按鈕來開始搜索。最後,它必須有一個顯示搜索結果的區域。在我們的例子中,它是用一個列表組件實現的。
“搜索人員”用例場景是:
上面的序列圖顯示了用戶的按鈕單擊如何在應用程序中移動,直到結果最終顯示在列表組件中。